<?php 
require_once('include/header.php');
require_once('vo/ClientesVO.php');
require_once('search/ClientesSearchCriteria.php');
require_once('logic/ClientesLogic.php');
require('conf/configuration.php');

$logic = new ClientesLogic($_POST);
// Ordenamiento
if($_GET[order] == "asc")	
	$order= "desc";
else if($_GET[order] == "desc")	
	$order= "asc";
else 	
	$order= "desc";
if (!isset($_GET["orderby"]))
	$orderby = "Comitente";
else 	
	$orderby = $_GET["orderby"];
$smarty->assign("orderby", $orderby);
$smarty->assign("order", $order);
		
		
// Seteo el searchcriteria para mostrar la tabla con todos los resultados segun el filtro. (sin paginacion)
$clientesSearchCriteria = new ClientesSearchCriteria();
$clientesSearchCriteria->setSearch($_GET['search']);
$clientesSearchCriteria->setOrder($order);
$clientesSearchCriteria->setOrderby($orderby);
$clientesSearchCriteria->setInicio(1);
$clientesSearchCriteria->setFin(null);
		
		
// Controller
$action = $_GET["action"];
if ($action == null){
	$action = $_POST["action"];
}
switch ($action){
	case "save":
		$result = $logic->save($_POST);
		if ($result == "error")
			$smarty->assign("error", "Ha ocurrido un error al guardar los cambios del Registro de Clientes");
		else
			$smarty->assign("message", "El Registro de Clientesha sido actualizado");
		break;
	case "add":
		$smarty->assign("detailPage","clientesForm.tpl");
		$smarty->display("admin_generic.tpl");
		exit;break;
	case "update":
		$id = $_GET["id"];
		if ($id != null){
			$clientes = $logic->get($id);
			$smarty->assign("clientes", $clientes);
		}
		$smarty->assign("detailPage","clientesForm.tpl");
		$smarty->display("admin_generic.tpl");
		exit;break;	
	case "delete":
		$result = $logic->delete($_POST["id"]);
		if ($result == "error")
			$smarty->assign("error", "Ha ocurrido un error al eliminar el Registro de ");
		else
			$smarty->assign("message", "Se ha eliminado el Registro de ");
		break; 
}

// Paginador
$cantidad = $logic->count($clientesSearchCriteria);
$totalItemsPerPage=10;
if (isset($_GET["entradas"]))
	$totalItemsPerPage=$_GET["entradas"];
$totalPages = ceil($cantidad / $totalItemsPerPage);
$smarty->assign("totalPages", $totalPages);
$smarty->assign("totalItemsPerPage", $totalItemsPerPage);
$page = $_GET[page];
if (!$page) {
	$start = 0;
	$page = 1;
	$smarty->assign("page", $page);
}
else
	$start = ($page - 1) * $totalItemsPerPage;
$smarty->assign("page", $page);
			
			
// Obtengo solo los registros de la pagina actual.
$clientesSearchCriteria->setInicio($start);	
$clientesSearchCriteria->setFin($totalItemsPerPage);
$clientesSearchCriteria->setOrder($order);
$clientesSearchCriteria->setOrderby($orderby);
$clientes = $logic->find($clientesSearchCriteria);
			
			
$smarty->assign("allParams", CommonPlugin::getParamsAsString($_GET));
$smarty->assign("cantidad", $cantidad);
$smarty->assign("clientes", $clientes);
$smarty->assign("detailPage", "clientes.tpl");
$smarty->display("admin_generic.tpl");
			 
?>